﻿using Microsoft.Xna.Framework.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Project.Core;

namespace TLS
{
    class Disparo_Boss1 : Sprite
    {
        private Animacion animIzquierda;
        private Animacion animDerecha;
        private Game1 game;
        public enum Direcciones { IZQUIERDA, DERECHA };
        public Direcciones direccion { get; set; }
        public int puntos { get; set; }
        Kaled objKaled;

        private float velocidad;
        public Disparo_Boss1(Game1 game)
            : base(null)
        {
            this.game = game;
            objKaled = this.game.objKaled;
            animIzquierda = new Animacion();
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l01"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l02"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l03"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l04"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l05"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l06"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l07"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l08"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l09"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l10"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l11"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l12"), 150);
            animIzquierda.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_l13"), 150);

            animDerecha = new Animacion();
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r01"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r02"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r03"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r04"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r05"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r06"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r07"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r08"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r09"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r10"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r11"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r12"), 150);
            animDerecha.agregarFrame(game.Content.Load<Texture2D>("Boss1/bola-ataque/ataque_r13"), 150);
            
            this.direccion = Direcciones.DERECHA;
            base.animacion = animIzquierda;
            this.velocidad = 0.64f;
            this.puntos = 0;
        }

        public override void actualizar(long tiempo)
        {
            switch (direccion)
            {
                case Direcciones.DERECHA:
                    base.animacion = animDerecha;
                    velocidadX = velocidad;
                    break;
                case Direcciones.IZQUIERDA:
                    base.animacion = animIzquierda;
                    velocidadX = -velocidad;
                    break;
            }
            base.actualizar(tiempo);
        }

        public override void evento_ColisionHorizontalTile()
        {
            escenarioActual.sprites.Remove(this);
        }
        public override void evento_ColisionHorizontalSprite(Sprite objSprite)
        {
            if (objSprite is Kaled)
            {
                Kaled objKaled = (Kaled)objSprite;
                if (objKaled.vidaActual > 0)
                {
                    objKaled.vidaActual -= 10;
                    //escenarioActual.sprites.Remove(this);
                }
                else if (objKaled.vidaActual < 1)
                {
                    if (objKaled.vida > 0)
                    {
                        objKaled.vidaActual = 100;
                        objKaled.vida--;
                        //escenarioActual.sprites.Remove(this);
                    }
                    if (objKaled.vida == 0 && objKaled.vidaActual <= 0)
                    {
                        objKaled.vida = 5;
                        objKaled.vidaActual = 100;
                        objKaled.puntos = 0;    
                        objKaled.x = 3;
                        objKaled.y = 25;
                        escenarioActual.regenerarMapa();
                        escenarioActual.sprites.Add(objKaled.objArma);
                    }
                }
              
            }
        }
    }
}
